#include<stdio.h>

//int main() {
//	//int n = 0;
//	//int i = 0;
//	//scanf_s("%d", &n);
//	//
//	//for(i=31;i>=0;i-=2)
//	//{
//	//	printf("%d ", ((n >> i) & 1));
//	//}
//	//printf("\n");
//	//for (i=30;i >= 0;i-=2) 
//	//{
//
//	//	printf("%d ", ((n >> i) & 1));
//	//}
//	int a = 0;
//	int i = 1;
//	int b = 0;
//	scanf_s("%d%d", &a, &b);
//	int m = a > b ? a : b;
//	while (a * i % m) {
//		i++;
//	}
//	printf("%d", a * i);
//
//	return 0;
//}
//
//void reduce(char* left, char* right)
//{
//	while (left<right) {
//
//		char temp = 0;
//		temp = *left;
//		*left = *right;
//		*right = temp;
//		left++;
//		right--;
//	}
//	
//}
//
//int main()
//{
//	char arr[100] = { 0 };
//	gets(arr);
//	int len = strlen(arr);
//	redu
// ce(arr,arr+len-1);
//	
//	char* star =arr;
//	while (*star) {
//		char* end = star;
//		while ((end != ' ') && (end != '\0')) {
//			end++;
//			reduce(star, end-1);
//			if (end == ' ') {
//				star = end + 1;
//			}
//			else {
//				star = end;
//				break;
//			}
//				
//			
//
//
//		}
//
//	}
//	
//int main()
//{
//	char i = -128;
//	printf("%u", i);
//	return 0;
//
//
//}
#define  _CRT_SECURE_NO_WARNINGS 1
int number(int m)
{
	int count = 0;
	while (m) {
		m = m & (m - 1);
		count++;
	}
	return count;
}


int main()
{
	int n;
	scanf_s("%d", &n);
	int ret = number(n);
	printf("%d", ret);
	return 0;

}
